package com.stone.framework.cases.entity;

import java.math.BigDecimal;
import java.time.LocalDateTime;

import javax.persistence.Column;
import javax.persistence.Entity;

import com.stone.framework.core.entity.DebtEntity;

/**
 * 案件分配信息
 * 
 * @author whocares
 * @date 2020/04/11
 */
@Entity(name = "ST_CASE_ASSIGN")
public class CaseAssign extends DebtEntity {

    private static final long serialVersionUID = -7928825189990157787L;

    @Column(name = "CASE_NBR")
    private String caseNbr;

    @Column(name = "CUST_NBR")
    private String custNbr;

    @Column(name = "TEAM_CODE")
    private String teamCode;

    @Column(name = "COLLECTOR")
    private String collector;

    @Column(name = "DEPT_ID")
    private String deptId;

    @Column(name = "PRE_TEAM_CODE")
    private String preTeamCode;

    @Column(name = "PRE_COLLECTOR")
    private String preCollector;

    @Column(name = "PRE_DEPT_ID")
    private String preDeptId;

    /**
     * 入催日期
     */
    @Column(name = "START_DATE")
    private LocalDateTime startDate;

    /**
     * 出催日期
     */
    @Column(name = "END_DATE")
    private LocalDateTime endDate;

    @Column(name = "ALLOC_TYPE")
    private Type allocType;

    @Column(name = "END_TYPE")
    private Type endType;

    @Column(name = "REASON")
    private String reason;

    @Column(name = "TOT_BAL")
    private BigDecimal totBal;

    @Column(name = "TOT_DEBT")
    private BigDecimal totDebt;

    public static enum Type {
        NEW("新入催"), STRA("策略分案"), QUIT("退案"), END("结案"), CANCEL("撤案"), ADJUST("手动调案");

        private String desc;

        private Type(String desc) {
            this.desc = desc;
        }

        public String getDesc() {
            return desc;
        }
    }

    public String getCaseNbr() {
        return caseNbr;
    }

    public void setCaseNbr(String caseNbr) {
        this.caseNbr = caseNbr;
    }

    public String getCustNbr() {
        return custNbr;
    }

    public void setCustNbr(String custNbr) {
        this.custNbr = custNbr;
    }

    public String getTeamCode() {
        return teamCode;
    }

    public void setTeamCode(String teamCode) {
        this.teamCode = teamCode;
    }

    public String getCollector() {
        return collector;
    }

    public void setCollector(String collector) {
        this.collector = collector;
    }

    public String getDeptId() {
        return deptId;
    }

    public void setDeptId(String deptId) {
        this.deptId = deptId;
    }

    public String getPreTeamCode() {
        return preTeamCode;
    }

    public void setPreTeamCode(String preTeamCode) {
        this.preTeamCode = preTeamCode;
    }

    public String getPreCollector() {
        return preCollector;
    }

    public void setPreCollector(String preCollector) {
        this.preCollector = preCollector;
    }

    public String getPreDeptId() {
        return preDeptId;
    }

    public void setPreDeptId(String preDeptId) {
        this.preDeptId = preDeptId;
    }

    public LocalDateTime getStartDate() {
        return startDate;
    }

    public void setStartDate(LocalDateTime startDate) {
        this.startDate = startDate;
    }

    public LocalDateTime getEndDate() {
        return endDate;
    }

    public void setEndDate(LocalDateTime endDate) {
        this.endDate = endDate;
    }

    public Type getAllocType() {
        return allocType;
    }

    public void setAllocType(Type allocType) {
        this.allocType = allocType;
    }

    public Type getEndType() {
        return endType;
    }

    public void setEndType(Type endType) {
        this.endType = endType;
    }

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    public BigDecimal getTotBal() {
        return totBal;
    }

    public void setTotBal(BigDecimal totBal) {
        this.totBal = totBal;
    }

    public BigDecimal getTotDebt() {
        return totDebt;
    }

    public void setTotDebt(BigDecimal totDebt) {
        this.totDebt = totDebt;
    }

}
